﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using liclSolcred.Views;
using com.creditos.be.liclSolcred;
using com.creditos.util.liclUtil;
using com.creditos.be.liclUtil;
using com.creditos.be.liclVerifica;

public partial class solcred_FormsManVerificacionDomicilio : CreditosPaseBase, IFormsVerificacionDomicilioView
{    
    private liclSolcred.Views.FormsVerificacionDomicilioPresenter oPresenter = new FormsVerificacionDomicilioPresenter();
    decimal NumeroSolicitud = 0;
    protected void Page_Load(object sender, EventArgs e)
    {        
        
        if (!this.IsPostBack)
        {
            oPresenter.View = this;
            Master.TituloModulo = "Verificación Domiciliaria";
            int intCodigoIntegrante = int.Parse((string)Session["CodigoIntegrante"]);
            NumeroSolicitud = decimal.Parse((string)Session["NumeroSolicitud"]);
            int intCodigoVerificacion = int.Parse((string)Session["CodigoVerificacion"]);
            ObtenerDatosVerificacion(intCodigoIntegrante, NumeroSolicitud, intCodigoVerificacion);
            oPresenter.Load();
            InsertarSeleccione();
            UCBarraHerramientas1.btnEvaluar.Visible = true;
            UCBarraHerramientas1.btnExonerar.Visible = true;
            UCBarraHerramientas1.btnAnular.Visible = true;
            UCBarraHerramientas1.btnActualizar.Visible = true;
            UCBarraHerramientas1.btnRegresar.Visible = true;
        }
        oPresenter.View = this;

    }
    protected override void DefineHandlers()
    {
        UCBarraHerramientas1.btnActualizar.Click += new EventHandler(btnActualizar_Click);
        UCBarraHerramientas1.btnRegresar.Click += new EventHandler(btnRegresar_Click);
        UCBarraHerramientas1.btnAnular.Click += new EventHandler(btnAnular_Click);
        UCBarraHerramientas1.btnExonerar.Click += new EventHandler(btnExonerar_Click);
      
    }

    public void InsertarSeleccione()
    {
        List<Control> lstControles = new List<Control>();
        lstControles = Utilitario.ListarControles(Page, 2);
        foreach (Control item in lstControles)
        {
            UIBindable.InsertarSeleccionar((DropDownList)item);
        }
    }

    void btnActualizar_Click(object sender, EventArgs e)
    {
        DateTime fechaTmp;
        //fechaTmp = DateTime.Parse(txtFecVis.Text);

        bool ok = DateTime.TryParse(txtFecVis.Text, out fechaTmp);
        if (!ok)
        { /* No era válido */
            MostrarMensajeError("Fecha no ingresada o error de formato");
        }
        else
        { /* La fecha está en dFecha */

            if (fechaTmp > DateTime.Now)
            {
                MostrarMensajeError("Fecha de Visita no puede ser mayor a la fecha actual");
            }
            else if (ddlResultado.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar un resultado de verificación");
            }
            else if (txtDesApr.Text == string.Empty)
            {
                MostrarMensajeError("Debe llenar las apreciaciones");
            }
            else if (ddlHabitaSolicitante.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar una opción de habita solicitante");
            }
            else if (ddlHabitaAlguien.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar una opción de habita alguien");
            }
            else if (ddlEstadoVivienda.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar una opción de estado de inmueble");
            }
            else if (ddlInmuebleUbicacionCasa.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar una opción de la ubicación del inmueble");
            }
            else if (ddlTipoConstruccion.SelectedIndex == 0)
            {
                MostrarMensajeError("Debe seleccionar un tipo de construcción");
            }
            else
            {

                BandejaVerificacionBE oVerificacion = new BandejaVerificacionBE();

                oVerificacion.NumeroSolicitud = decimal.Parse((string)Session["NumeroSolicitud"]);
                oVerificacion.CodigoIntegrante = int.Parse((string)Session["CodigoIntegrante"]); ;
                oVerificacion.CodigoVerificacion = int.Parse((string)Session["CodigoVerificacion"]);
                //oVerificacion.FechaVisita = txtFecVis.Text == string.Empty ? DateTime.Parse("01/01/2001") : Utilitario.DarFormatoFecha(txtFecVis.Text);
                oVerificacion.FechaVisita = fechaTmp;
                oVerificacion.CodigoEstadoCivil = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoCivil.SelectedValue));
                oVerificacion.CodigoTipoInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoInmueble.SelectedValue));
                oVerificacion.CodigoEstadoVivienda = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoVivienda.SelectedValue));
                oVerificacion.CodigoHabitaSolicitante = int.Parse(Utilitario.DarFormatoEnteroCero(ddlHabitaSolicitante.SelectedValue));
                oVerificacion.CodigoUbicacionInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlInmuebleUbicacionCasa.SelectedValue));
                oVerificacion.FlagReside = 0;
                oVerificacion.CodigoTipoZona = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoZona.SelectedValue));
                oVerificacion.CodigoTipoConstruccion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoConstruccion.SelectedValue));
                oVerificacion.CodigoHabitaAlguien = int.Parse(Utilitario.DarFormatoEnteroCero(ddlHabitaAlguien.SelectedValue));
                oVerificacion.CodigoTipoServicioBasico = int.Parse(Utilitario.DarFormatoEnteroCero(ddlServicioBasico.SelectedValue));
                oVerificacion.CodigoMedioComunicacion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMedioComunicacion.SelectedValue));
                oVerificacion.CodigoAtendido = int.Parse(Utilitario.DarFormatoEnteroCero(ddlAtendido.SelectedValue));
                oVerificacion.ValorAnnoResidencia = txtAntDomAnhos.Text == string.Empty ? 0 : int.Parse(txtAntDomAnhos.Text);
                oVerificacion.ValorMesResidencia = txtAntDomMes.Text == string.Empty ? 0 : int.Parse(txtAntDomMes.Text);
                oVerificacion.DescripcionEntrevistado = txtInfDoc.Text;
                oVerificacion.CodigoParentesco = int.Parse(Utilitario.DarFormatoEnteroCero(ddlRelInformante.SelectedValue));
                oVerificacion.CodigoResultado = int.Parse(Utilitario.DarFormatoEnteroCero(ddlResultado.SelectedValue));
                oVerificacion.DescripcionObservacion = txtDesApr.Text;
                oVerificacion.CodigoUsuario = 1;
                oVerificacion.CodigoEstado = 1;
                List<BandejaVerificacionBE> lst = oPresenter.ActualizarVerificacionDomicilioFisica(oVerificacion);
                lblRespuesta.Text = lst[0].DescripcionEstadoVivienda;
                MostrarMensajeError("Operación realizada exitosamente");
            }
        }
    }

    void btnAnular_Click(object sender, EventArgs e)
    {
        
            if (txtDesApr.Text == string.Empty)
            {
                MostrarMensajeError("Debe llenar las apreciaciones");
            }
           
            else
            {

                BandejaVerificacionBE oVerificacion = new BandejaVerificacionBE();
    
                oVerificacion.NumeroSolicitud = decimal.Parse((string)Session["NumeroSolicitud"]);
                oVerificacion.CodigoIntegrante = int.Parse((string)Session["CodigoIntegrante"]); ;
                oVerificacion.CodigoVerificacion = int.Parse((string)Session["CodigoVerificacion"]);                
                if (txtFecVis.Text == string.Empty)
                    oVerificacion.FechaVisita = Convert.ToDateTime(Utilitario.DarFormatoFecha("01/01/2001"));
                else oVerificacion.FechaVisita = Convert.ToDateTime(Utilitario.DarFormatoFecha(txtFecVis.Text));
                oVerificacion.CodigoEstadoCivil = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoCivil.SelectedValue));
                oVerificacion.CodigoTipoInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoInmueble.SelectedValue));
                oVerificacion.CodigoEstadoVivienda = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoVivienda.SelectedValue));
                oVerificacion.CodigoHabitaSolicitante = int.Parse(Utilitario.DarFormatoEnteroCero(ddlHabitaSolicitante.SelectedValue));
                oVerificacion.CodigoUbicacionInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlInmuebleUbicacionCasa.SelectedValue));
                oVerificacion.FlagReside = 0;
                oVerificacion.CodigoTipoZona = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoZona.SelectedValue));
                oVerificacion.CodigoTipoConstruccion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoConstruccion.SelectedValue));
                oVerificacion.CodigoHabitaAlguien = int.Parse(Utilitario.DarFormatoEnteroCero(ddlHabitaAlguien.SelectedValue));
                oVerificacion.CodigoTipoServicioBasico = int.Parse(Utilitario.DarFormatoEnteroCero(ddlServicioBasico.SelectedValue));
                oVerificacion.CodigoMedioComunicacion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMedioComunicacion.SelectedValue));
                oVerificacion.CodigoAtendido = int.Parse(Utilitario.DarFormatoEnteroCero(ddlAtendido.SelectedValue));
                oVerificacion.ValorAnnoResidencia = txtAntDomAnhos.Text == string.Empty ? 0 : int.Parse(txtAntDomAnhos.Text);
                oVerificacion.ValorMesResidencia = txtAntDomMes.Text == string.Empty ? 0 : int.Parse(txtAntDomMes.Text);
                oVerificacion.DescripcionEntrevistado = txtInfDoc.Text;
                oVerificacion.CodigoParentesco = int.Parse(Utilitario.DarFormatoEnteroCero(ddlRelInformante.SelectedValue));
                oVerificacion.CodigoResultado = int.Parse(Utilitario.DarFormatoEnteroCero(ddlResultado.SelectedValue));
                oVerificacion.DescripcionObservacion = txtDesApr.Text;
                oVerificacion.CodigoUsuario = 1;
                oVerificacion.CodigoEstado = 2;
                List<BandejaVerificacionBE> lst = oPresenter.ActualizarVerificacionDomicilioFisica(oVerificacion);                
                MostrarMensajeError("Operación realizada exitosamente");
            }
        
    }

    void btnExonerar_Click(object sender, EventArgs e)
    {
      
            if (txtDesApr.Text == string.Empty)
            {
                MostrarMensajeError("Debe llenar las apreciaciones");
            }
            else
            {
                BandejaVerificacionBE oVerificacion = new BandejaVerificacionBE();

                oVerificacion.NumeroSolicitud = decimal.Parse((string)Session["NumeroSolicitud"]);
                oVerificacion.CodigoIntegrante = int.Parse((string)Session["CodigoIntegrante"]); ;
                oVerificacion.CodigoVerificacion = int.Parse((string)Session["CodigoVerificacion"]);
                if (txtFecVis.Text == string.Empty)
                    oVerificacion.FechaVisita = Convert.ToDateTime(Utilitario.DarFormatoFecha("01/01/2001"));
                else oVerificacion.FechaVisita = Convert.ToDateTime(Utilitario.DarFormatoFecha(txtFecVis.Text));
                oVerificacion.CodigoEstadoCivil = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoCivil.SelectedValue));
                oVerificacion.CodigoTipoInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoInmueble.SelectedValue));
                oVerificacion.CodigoEstadoVivienda = int.Parse(Utilitario.DarFormatoEnteroCero(ddlEstadoVivienda.SelectedValue));
                oVerificacion.CodigoHabitaSolicitante = int.Parse(Utilitario.DarFormatoEnteroCero(ddlHabitaSolicitante.SelectedValue));
                oVerificacion.CodigoUbicacionInmueble = int.Parse(Utilitario.DarFormatoEnteroCero(ddlInmuebleUbicacionCasa.SelectedValue));
                oVerificacion.FlagReside = 0;
                oVerificacion.CodigoTipoZona = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoZona.SelectedValue));
                oVerificacion.CodigoTipoConstruccion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlTipoConstruccion.SelectedValue));
                oVerificacion.CodigoHabitaAlguien = int.Parse(Utilitario.DarFormatoEnteroCero(ddlHabitaAlguien.SelectedValue));
                oVerificacion.CodigoTipoServicioBasico = int.Parse(Utilitario.DarFormatoEnteroCero(ddlServicioBasico.SelectedValue));
                oVerificacion.CodigoMedioComunicacion = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMedioComunicacion.SelectedValue));
                oVerificacion.CodigoAtendido = int.Parse(Utilitario.DarFormatoEnteroCero(ddlAtendido.SelectedValue));
                oVerificacion.ValorAnnoResidencia = txtAntDomAnhos.Text == string.Empty ? 0 : int.Parse(txtAntDomAnhos.Text);
                oVerificacion.ValorMesResidencia = txtAntDomMes.Text == string.Empty ? 0 : int.Parse(txtAntDomMes.Text);
                oVerificacion.DescripcionEntrevistado = txtInfDoc.Text;
                oVerificacion.CodigoParentesco = int.Parse(Utilitario.DarFormatoEnteroCero(ddlRelInformante.SelectedValue));
                oVerificacion.CodigoResultado = int.Parse(Utilitario.DarFormatoEnteroCero(ddlResultado.SelectedValue));
                oVerificacion.DescripcionObservacion = txtDesApr.Text;
                oVerificacion.CodigoUsuario = 1;
                oVerificacion.CodigoEstado = 3;
                List<BandejaVerificacionBE> lst = oPresenter.ActualizarVerificacionDomicilioFisica(oVerificacion); 
                MostrarMensajeError("Operación realizada exitosamente");
            }       
    }

    void btnRegresar_Click(object sender, EventArgs e)
    {
        Response.Redirect("FormsConBandejaVerificacion.aspx");
    }

    public void ObtenerDatosVerificacion(int intCodigoIntegrante, decimal NumeroSolicitud, int intCodigoVerificacion)
    {
        BandejaVerificacionBE oVerificacion = new BandejaVerificacionBE();
        oVerificacion.CodigoIntegrante = intCodigoIntegrante;
        oVerificacion.NumeroSolicitud = NumeroSolicitud;
        oVerificacion.CodigoVerificacion = intCodigoVerificacion;
        oPresenter.ObtenerDatosIntegranteVerificacion(oVerificacion);
    }

    #region IFormsVerificacionDomicilioView Members

    public void CargarComboVerificacionDomicilio(List<ParametroBE> lstParametro, int intCodigoTabla)
    {
        if (lstParametro.Count > 0)
        {
            switch (intCodigoTabla)
            {
                case 5:
                    UIBindable.Bind(ddlEstadoCivil, lstParametro);                    
                    break;
                case 998:
                    UIBindable.Bind(ddlTipoInmueble, lstParametro);
                    break;
                case 995:
                    UIBindable.Bind(ddlEstadoVivienda, lstParametro);
                    break;
                case 885:
                    UIBindable.Bind(ddlResideInmueble, lstParametro);
                    break;
                case 850:
                    UIBindable.Bind(ddlInmuebleUbicacionCasa, lstParametro);
                    break;
                case 851:
                    UIBindable.Bind(ddlTipoConstruccion, lstParametro);
                    break;
                case 853:
                    UIBindable.Bind(ddlTipoZona, lstParametro);
                    break;
                case 884:
                    UIBindable.Bind(ddlServicioBasico, lstParametro);
                    break;
                case 713:
                    UIBindable.Bind(ddlHabitaAlguien, lstParametro);
                    UIBindable.Bind(ddlAtendido, lstParametro);
                    UIBindable.Bind(ddlHabitaSolicitante, lstParametro);
                    break;
                case 856:
                    UIBindable.Bind(ddlMedioComunicacion, lstParametro);
                    break;
                case 977:
                    UIBindable.Bind(ddlRelInformante, lstParametro);
                    break;
                case 996:
                    UIBindable.Bind(ddlResultado, lstParametro);
                    break;                
            }
        }
    }

    public void MostrarMensajeError(string p)
    {
        Master.MostrarMensaje(p, 0);
    }

    public void CargarDatosIntegranteVerificacion(List<BandejaVerificacionBE> lstParametro)
    {
        if (lstParametro.Count > 0)
        {

            txtNroSolInf.Text = NumeroSolicitud.ToString();
            txtTitular.Text = lstParametro[0].Titular;
            txtNroDoc.Text = lstParametro[0].NumeroDocumento;
            txtTipDoc.Text = lstParametro[0].TipoDocumento;
            txtDirCli.Text = lstParametro[0].DireccionPN;
            txtCodPos.Text = lstParametro[0].DepartamentoPN + " - " + lstParametro[0].ProvinciaPN + " - " + lstParametro[0].ProvinciaPN;            
            txtNroPedInf.Text = (string)Session["CodigoIntegrante"];
            lblRespuesta.Text = (string)Session["DescripcionEstado"];
            txtUsuIng.Text = (string)Session["CodigoUsuarioOrdena"];
            txtUsuEnv.Text = (string)Session["DescripcionUsuarioOrdena"] == "&nbsp;" ? "" : (string)Session["DescripcionUsuarioOrdena"];
            txtCodEmp.Text = (string)Session["CodigoUsuarioVerifica"];
            txtNombreEmp.Text = (string)Session["DescripcionUsuarioVerifica"] == "&nbsp;" ? "" : (string)Session["DescripcionUsuarioVerifica"];
            txtFecEnv.Text = (string)com.creditos.util.liclUtil.Utilitario.DarFormatoFecha((string)Session["FechaEnvio"]);
        }
    }

    #endregion

    

}
